package com.x.aoki.order;

import com.x.aoki.ribbon.rules.MySelfRule;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.ribbon.RibbonClient;

/**
 * 主启动类
 *
 *  基于 Consul 注册中心的订单服务与基于 Zookeeper 的类似。这里没有再实现，不想在 mac 上安装 consul 软件了。
 *
 *  Eureka，Zookeeper 和 Consul 三者作为注册中心的异同点：
 *      | 组件名         | 语言 | CAP | 服务监控检查 | 对外暴露接口 | SpringCloud 集成 |
 *      | Eureka        | JAVA | AP | 可配置 | HTTP | 已集成 |
 *      | Zookeeper     | JAVA | CP | 支持 | 客户端 | 已集成 |
 *      | Consul        | GO    | CP | 支持 | HTTP/DNS | 已集成 |
 *
 *
 *
 * @author caoy
 * @date 2025-02-14 16:16:06
 */
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableEurekaClient
// 当前的消费者需要访问 x-payment-provider 服务，并且指定自定义的路由规则为随机规则
// @RibbonClient(name = "x-payment-provider",configuration = MySelfRule.class)
@EnableDiscoveryClient
public class XOrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(XOrderApplication.class, args);
    }
}
